import type { BaseListItemType } from '@/api/global.type';
import type {
	LessonItemType,
	AILessonTaskProgressKeyType,
	AILessonTaskProgressItemType,
	CheckRoomItem,
	GetCheckRoomListResponseTypeItem,
	RecordTaskType
} from '@/api/service/analysis-task-manage.type';
import type { GetTerm4DayResponseType } from '@/api/service/base.type';

export type { FileType } from '@/api/service/analysis-task-manage.type';
/**
 * 分析管理类型定义
 */

/** 查询对象 */
export interface QueryObj {
	termCode: string;
	academyCode: string;
	searchValue: string;
	aiLessonTaskStatus: number | string;
	campusCode: string;
	buildingCode: string;
	roomCode: string;
	timeRange: string[];
}

/** 学期信息 */
export type Term = BaseListItemType;
export type CurTerm = GetTerm4DayResponseType;

/** 学院信息 */
export type Academy = BaseListItemType;

/** 授课地点信息 */
export interface Location {
	campusCode: string;
	buildingCode: string;
	roomCode: string;
}

/** 教室监管查询信息 */
export interface RoomItem extends CheckRoomItem {
	select?: boolean;
}

export interface FloorItem {
	buildingFloorNo: number;
	roomList: RoomItem[];
}

export interface RoomListItem extends GetCheckRoomListResponseTypeItem {
	floorList?: FloorItem[];
}

/** 表格数据 */
export type TableDataItem = LessonItemType;

/** AI分析任务进度详情 */
export type TaskProgressKeyType = AILessonTaskProgressKeyType;
export type TaskProgressItemType = AILessonTaskProgressItemType;
export interface TaskProgressDetailItem extends TaskProgressItemType {
	level: number;
	isRefresh: boolean;
	parentName?: string;
}

/** 观看点播 */
export type FragmentItem = RecordTaskType;

export interface VideoDataType {
	source: string;
	videoId: string;
	name: string;
}

// 自定义表格列类型
export interface CustomTableColumn {
	label: string;
	orderColumn?: string;
	order: string | null;
	multiOrder: string;
	sortable: string | boolean;
}
